package com.shisfish.library.Inter;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.shisfish.core.Inter.IModelInter;
import com.shisfish.library.Model.Book;

public interface IBookInter extends IModelInter<Book>{
	
	public int countByCategory(@Param("category") String category);
	
	public List<Book> selectByCategory(@Param("category") String category, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public int countByTitle(@Param("title") String title);
	
	public List<Book> selectByTitle(@Param("title") String title, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public int countByAuthor(@Param("author") String author);
	
	public List<Book> selectByAuthor(@Param("author") String author, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public int countByISBN(@Param("ISBN") String ISBN);
	
	public List<Book> selectByISBN(@Param("ISBN") String ISBN, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public List<Book> selectByPage(@Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public int countFuzzy(@Param("singleString") List<String> singleString);
	
	public List<Book> selectFuzzy(@Param("singleString") List<String> singleString, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
	public List<Map<String, Object>> selectOtherBooks(@Param("number") int number);
	
	public List<Map<String, Object>> selectFuzzyLess(@Param("singleString") List<String> singleString, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
	
}
